/**
 * www.lifexx.com Inc.
 * Copyright (c) 2014 All Rights Reserved.
 */
package net.mikoo.seals.boss.biz.services;

import java.util.List;

import net.mikoo.seals.boss.model.Menu;
import net.mikoo.seals.boss.model.MenuQuery;
import net.mikoo.seals.boss.model.RoleQuery;

/**
 *                       
 * @Filename MenuService.java
 *
 * @Description 
 *
 * @Version 1.0
 *
 * @Author chenzx
 *
 * @Email chenzx1206@163.com
 *       
 * @History
 *<li>Author: chenzx</li>
 *<li>Date: 2015年1月22日</li>
 *<li>Version: 1.0</li>
 *<li>Content: create</li>
 *
 */
public interface MenuService {
	/**
	 * 
	 * @Description 保持菜单数据
	 *
	 * @Version 1.0
	 *
	 * @Author chenzx
	 *
	 * @Email chenzx1206@163.com
	 *
	 * @History
	 *
	 *<li>Author: chenzx</li>
	 *<li>Date: 2015年1月22日</li>
	 *<li>Version: 1.0</li>
	 *<li>Content: create</li>
	 *
	 * @param menu
	 * @return
	 */
	public void save(Menu menu);
	/**
	 * 
	 * @Description 修改菜单数据
	 *
	 * @Version 1.0
	 *
	 * @Author chenzx
	 *
	 * @Email chenzx1206@163.com
	 *
	 * @History
	 *
	 *<li>Author: chenzx</li>
	 *<li>Date: 2015年1月22日</li>
	 *<li>Version: 1.0</li>
	 *<li>Content: create</li>
	 *
	 * @param menu
	 * @return
	 */
	public void modifyByPrimaryKey(Menu menu);
	/**
	 * 
	 * @Description 根据主键加载菜单数据
	 *
	 * @Version 1.0
	 *
	 * @Author chenzx
	 *
	 * @Email chenzx1206@163.com
	 *
	 * @History
	 *
	 *<li>Author: chenzx</li>
	 *<li>Date: 2015年1月22日</li>
	 *<li>Version: 1.0</li>
	 *<li>Content: create</li>
	 *
	 * @param menuId
	 * @return
	 */
	public Menu loadByPrimaryKey(Long menuId);
	/**
	 * 
	 * @Description 根据主键删除菜单
	 *
	 * @Version 1.0
	 *
	 * @Author chenzx
	 *
	 * @Email chenzx1206@163.com
	 *
	 * @History
	 *
	 *<li>Author: chenzx</li>
	 *<li>Date: 2015年1月22日</li>
	 *<li>Version: 1.0</li>
	 *<li>Content: create</li>
	 *
	 * @param menuId
	 * @return
	 */
	public void deleteByPrimaryKey(Long menuId);
	/**
	 * 
	 * @Description 根据父菜单主键加载菜单数据
	 *
	 * @Version 1.0
	 *
	 * @Author chenzx
	 *
	 * @Email chenzx1206@163.com
	 *
	 * @History
	 *
	 *<li>Author: chenzx</li>
	 *<li>Date: 2015年1月22日</li>
	 *<li>Version: 1.0</li>
	 *<li>Content: create</li>
	 *
	 * @param parentId
	 * @return
	 */
	public List<Menu> loadByParentId(Long parentId);
	/**
	 * 
	 * @Description 查询树形菜单列表
	 *
	 * @Version 1.0
	 *
	 * @Author chenzx
	 *
	 * @Email chenzx1206@163.com
	 *
	 * @History
	 *
	 *<li>Author: chenzx</li>
	 *<li>Date: 2015年1月22日</li>
	 *<li>Version: 1.0</li>
	 *<li>Content: create</li>
	 *
	 * @return
	 */
	public List<Menu> loadAsTree();
	
	public List<Menu> getListByQuery(MenuQuery query);
}
